home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-05 / xgate200.zip / XCHARON.ZIP / XCHARON.DOC < prev   
Text File  |  1992-11-20  |  29KB  |  793 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                +------------------------------------------------------+
  26.                |                                                      |
  27.                |                                                      |
  28.                                      XCHARON 2.0                                     XCHARON 2.0               |                                                      |
  29.                |                                                      |
  30.                |                                                      |
  31.                               Running XGATE With Charon                              Running XGATE With Charon               |                                                      |
  32.                |                                                      |
  33.                |                                                      |
  34.                +------------------------------------------------------+
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.                                           XCHARON - Running XGATE With Charon
  70.        ----------------------------------------------------------------------
  71.  
  72.  
  73.  
  74.  
  75.  
  76.                                     Introduction                                    Introduction
  77.  
  78.        XGATE can  be run  using either  XSMTP or  Charon as  its SMTP  agent.
  79.        XSMTP is  a native add-on module for XGATE from DAC Micro Systems that
  80.        runs in  the same  computer and  requires the  PC/TCP kernel  from FTP
  81.        Software.   Charon is  a  separate  SMTP  gateway  developed  by  Brad
  82.        Clements of Clarkson University that requires its own computer.
  83.  
  84.        This documentation  describes how  to use Charon as the SMTP mailer by
  85.        using the  XCHARON.COM driver supplied with XGATE.  Using XSMTP as the
  86.        SMTP mailer is described in separate documentation.
  87.  
  88.        Charon isn't  quite as  powerful as  XSMTP, doesn't match its level of
  89.        performance, is  a little  more complicated  to set up, and requires a
  90.        separate computer  - but what do you want for free?  Even so, however,
  91.        Charon is  still a very robust, reliable, and professionally developed
  92.        SMTP agent.
  93.  
  94.        As of this writing Charon is freely copyable software.  But since Brad
  95.        makes a  stipulation in  his documentation that Charon not be combined
  96.        with programs  that are  for sale,  we can't  include it  with XGATE's
  97.        distribution files  - you have to obtain it separately.  Charon can be
  98.        found on  Compuserve under  NetWire, by  anonymous FTP  from  Clarkson
  99.        University (omnigate.clarkson.edu),  or from  our own  bulletin  board
  100.        (805-264-1219).
  101.  
  102.        Charon by  itself would  not be  compatible with  XGATE or MHS, it was
  103.        originally designed  to work  with Pegasus mail.  (A mail system which
  104.        actually uses  the SYS:MAIL\userid directory structure.)  XCharon is a
  105.        driver supplied with XGATE that seamlessly alters Charon's behavior to
  106.        be compatible with XGATE's operating environment.
  107.  
  108.        XCharon was  developed for  Charon version 3.4.  Since XCharon is very
  109.        specific to  the way  in which  Charon accesses  the  Novell  API,  no
  110.        guarantee is made that XCharon will work with versions of Charon older
  111.        or newer than 3.4.
  112.  
  113.  
  114.                                     Dave Frailey
  115.                                  DAC Micro Systems
  116.                                 Voice: 800-776-1322
  117.                                 Voice: 805-264-1700
  118.                                  BBS: 805-264-1219
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                                          i
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.                                           XCHARON - Running XGATE With Charon
  136.        ----------------------------------------------------------------------
  137.  
  138.  
  139.  
  140.                                       Contents                                      Contents
  141.  
  142.  
  143.            INTRODUCTION...................................................I
  144.  
  145.            REQUIREMENTS...................................................1
  146.  
  147.            CONCEPT OF OPERATION...........................................1
  148.  
  149.            INSTALLATION...................................................3
  150.               Installation Steps..........................................3
  151.               Configuring CHARON.DAT......................................4
  152.  
  153.            RUNNING CHARON.................................................7
  154.               What XCHARON Does To Fool CHARON............................7
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                          ii
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.                                           XCHARON - Running XGATE With Charon
  202.        ----------------------------------------------------------------------
  203.  
  204.  
  205.  
  206.  
  207.  
  208.                                     Requirements                                    Requirements
  209.  
  210.        When you  run XGATE  using Charon  as  the  SMTP  mailer,  a  separate
  211.        computer is needed on which to run Charon.
  212.  
  213.        Charon requires  a packet  driver (as  in one  of the  Clarkson Packet
  214.        Drivers) to communicate with the ethernet card, so if you don't have a
  215.        packet driver  for the  type of  ethernet card  that will  be used  in
  216.        Charon's computer,  you'll also  need to  download the Clarkson Packet
  217.        Drivers or  contact the  manufacturer of the ethernet card.  A current
  218.        copy of  the Clarkson  Packet Drivers  can be  found  on  Compuserve's
  219.        NetWire, on  our own  bulletin board,  and various Internet hosts like
  220.        omnigate.clarkson.edu.
  221.  
  222.        This documentation  is not  an authority on Charon's requirements, you
  223.        should consult  Charon's actual  documentation for  specific  details.
  224.        Charon does  tax the  CPU quite  a bit  more than XGATE though.  If it
  225.        were me I'd run Charon on at least a faster 286-based computer.
  226.  
  227.  
  228.  
  229.                                 Concept of Operation                                Concept of Operation
  230.  
  231.        How does  it work?   Its not really that complicated....  It takes two
  232.        PC's to  do the  job.   One PC  runs Charon (driven by XGATE's driver;
  233.        XCharon), and the other runs XGATE.
  234.  
  235.        The PC  running Charon  does all  of the receiving and sending of SMTP
  236.        mail.  When it receives new SMTP mail, the XCharon driver fools Charon
  237.        into thinking  the user  is always  valid and  also fools  Charon into
  238.        putting the  message into  the proper  Novell job  queue  where  XGATE
  239.        expects inbound messages.
  240.  
  241.        The other  PC running  XGATE, knows which queue Charon is being fooled
  242.        into putting inbound messages and scans it on a configurable basis for
  243.        new SMTP  mail.   The PC  running XGATE  also scans  the  MHS  gateway
  244.        directory for new outbound MHS mail during the same cycle.  When XGATE
  245.        detects a  new outbound  MHS message,  it converts  it to  an  RFC-822
  246.        compliant SMTP message and places it directly into the Novell outbound
  247.        SMTP job  queue.   The XCharon  driver also fools Charon into scanning
  248.        this queue when it looks for outbound SMTP messages.
  249.  
  250.        Philosophically, all  inbound SMTP messages received by a SMTP gateway
  251.        for MHS  should be  considered destined  for a  MHS user, and received
  252.        without question.   The  messages are then converted and passed to MHS
  253.        for routing.   If  there's a  delivery error,  MHS will  send an error
  254.  
  255.  
  256.  
  257.  
  258.                                          1
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.                                           XCHARON - Running XGATE With Charon
  268.        ----------------------------------------------------------------------
  269.  
  270.  
  271.  
  272.        message back  to the  SMTP user a few minutes later.  Furthermore, one
  273.        SMTP gateway  should be  capable of sending and receiving messages for
  274.        any number of MHS hosts.
  275.  
  276.        Without XCharon's  influence, Charon  would like  to login as a Novell
  277.        print server  and use  Novell print  queues to  hold SMTP  messages in
  278.        work.   The names  of the  print server  and print queues are normally
  279.        defined in  Charon's CHARON.DAT  file.   But when  XCharon is  running
  280.        Charon it  forces Charon  to log in as a different type of job server,
  281.        and it  also forces  Charon to  use different  queues for  inbound and
  282.        outbound messages.  So when XCharon is running Charon, what is defined
  283.        for the  names of  the print  server  and  print  queues  in  Charon's
  284.        configuration file won't make any difference.
  285.  
  286.        All of  this stuff  about Novell  job servers,  job  queues,  and  the
  287.        appropriate privileges  for each,  are installed  automatically in one
  288.        easy step by using XGATE's setup program (XSETUP).
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.                                          2
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.                                           XCHARON - Running XGATE With Charon
  334.        ----------------------------------------------------------------------
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.                                     Installation                                    Installation
  342.  
  343.        Installing Charon is not a cake-walk.  It does require something of an
  344.        understanding of TCP/IP based networks.  If you don't feel comfortable
  345.        with these types of questions, you may want to seek the aid of someone
  346.        who is.
  347.  
  348.        As with  XGATE, Charon should also be installed on the local hard disk
  349.        of a  PC connected to the network.  You can try installing Charon on a
  350.        network drive,  but when  Charon terminates  and returns  to  XCharon,
  351.        XCharon will  automatically log  itself  out  from  the  file  server.
  352.        Whatever method  you are  using to  run XCharon  would then have to be
  353.        capable of relogging or reattaching under privileges that could re-run
  354.        XCharon from wherever you installed it.
  355.  
  356.  
  357.        Installation Steps       Installation Steps
  358.  
  359.            1. Make a directory to hold Charon's program files on the computer
  360.               that will run Charon, and extract Charon's files to it (usually
  361.               a .ZIP file).
  362.  
  363.            2. Copy XGATE's driver, XCHARON.COM, into that directory.
  364.  
  365.            3. Setup the  computer that  will run  Charon  to  use  Clarkson's
  366.               Packet Drivers.   The  packet drivers  are supplied  separately
  367.               from either  Charon or  XGATE.  Charon's documentation provides
  368.               some instructions on how to use the packet drivers.
  369.  
  370.            4. Edit Charon's configuration files, CONFIG.TEL and CHARON.DAT to
  371.               reflect your  installation.   A sample CHARON.DAT configuration
  372.               file is  supplied with XGATE since its quite a bit less complex
  373.               than that which Charon is normally capable of using.
  374.  
  375.        When you  run Charon,  do so  by running  XCHARON.COM.    Do  not  run
  376.        CHARON.EXE directly.  XCharon will automatically run CHARON.EXE.
  377.  
  378.        Configuring Charon  for use  with XGATE is quite a bit easier and much
  379.        less complex  than installing  Charon by  itself without XGATE.  Where
  380.        things  differ   between  a   normal  Charon   installation  and   our
  381.        installation is  mainly in  the CHARON.DAT  file.  The CHARON.DAT file
  382.        contains configuration  information that  Charon uses to deal with the
  383.        Novell side of the house.  Most of what we need to change in there can
  384.        easily fit on one editing screen.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                          3
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.                                           XCHARON - Running XGATE With Charon
  400.        ----------------------------------------------------------------------
  401.  
  402.  
  403.  
  404.        Charon also  uses a  file called CONFIG.TEL which contains information
  405.        generic to  the Clarkson  family of TCP/IP applications (such as their
  406.        Telnet and FTP programs).  The format of this file is fairly standard,
  407.        its syntax  is almost  the same  as that which NCSA's Telnet uses.  In
  408.        order to  properly configure  this file  you  may  need  to  refer  to
  409.        Charon's documentation.   Nothing  in  CONFIG.TEL  differs  between  a
  410.        normal Charon installation and a Charon installation with XGATE, so we
  411.        won't go into much detail about its contents.
  412.  
  413.        What is  described in  the following  section are the field entries in
  414.        CHARON.DAT that are significant when running Charon with XGATE.  There
  415.        are other  configuration options available in CHARON.DAT which are not
  416.        mentioned.   You should keep an on-hand copy of Charon's documentation
  417.        and refer to it for any questions regarding fields not described here.
  418.  
  419.        Once  you   have  Charon's  CONFIG.TEL  and  CHARON.DAT  files  edited
  420.        correctly and have used XGATE's setup program XSETUP to create the job
  421.        servers and queues, you are ready to run Charon.
  422.  
  423.        Do not  follow any  of the  installation steps  described in  Charon's
  424.        documentation that  involve building  print servers  and print  queues
  425.        using Novell's  PCONSOLE!   XGATE's setup program XSETUP (described in
  426.        XGATE's installation),  should have  already created  the  proper  job
  427.        servers and job queues.
  428.  
  429.  
  430.        Configuring CHARON.DAT       Configuring CHARON.DAT
  431.  
  432.  
  433.  
  434.        myname       myname
  435.  
  436.            This variable tells Charon what its Internet name is.  This should
  437.            be set  to the same fully-qualified host name that was entered for
  438.            the "smtp_gateway_name" in XGATE.CFG.
  439.  
  440.  
  441.        server       server
  442.  
  443.            This variable  starts a  group of  variables which  define  values
  444.            associated with  a particular Novell file server.  Charon's native
  445.            mode is  normally capable  of servicing  more than one file server
  446.            and this  entry (along with its sub-entries) could then be defined
  447.            more than  once.   The Charon  documentation and sample CHARON.DAT
  448.            file supplied  with Charon  may show  more than  one  Novell  file
  449.            server defined.   When  Charon is  used with  XGATE, do not define
  450.            more than  one  file  server  by  using  more  than  one  "server"
  451.            variable.  MHS will perform any multi-host routing necessary.
  452.  
  453.  
  454.  
  455.  
  456.                                          4
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.                                           XCHARON - Running XGATE With Charon
  466.        ----------------------------------------------------------------------
  467.  
  468.  
  469.  
  470.  
  471.            Note:  When Charon is run under XCharon, all login requests to any
  472.            file server  are intercepted  and automatically  returned  with  a
  473.            success result.   Defining  more than one "server" entry will only
  474.            confuse Charon  by making it think it has successfully logged into
  475.            a file server that it actually hasn't.
  476.  
  477.            An example structure of a "server" section in CHARON.DAT is:
  478.  
  479.               server       enterprise     ; Novell file server
  480.                 userid     xcharon        ; login name
  481.                 password   ""             ; password to use
  482.                 mailqueue  smtp_in        ; job queue to use
  483.                poll        10             ; poll freq in secs
  484.  
  485.            When Charon  is run  by XCharon,  the  only  variable  that  isn't
  486.            overridden by  XCharon is  "poll".   This might imply however that
  487.            you could  leave these  fields blank  - but  if you do that Charon
  488.            will not  attempt to  use the  job queue.   You  can use  whatever
  489.            sounds good  for the values of "server", "userid", "password", and
  490.            "mailqueue" -  they just shouldn't be blank (except for password).
  491.            You normally  would set  the poll  frequency to a value similar to
  492.            that used in XGATE's configuration.
  493.  
  494.  
  495.        mailer       mailer
  496.  
  497.            This field starts Charon's mailer information section.  An example
  498.            mailer section follows:
  499.  
  500.            mailer                              ; The mailer section
  501.               agent        darius              ; Our SMTP relay
  502.               smtpin       enterprise smtp_in  ; SMTP inbound queue
  503.               listcycles   2                   ; msgs deliv/cycle
  504.               listdelay    1                   ; secs delay between
  505.               debug                            ; enable SMTP debug
  506.               max_smtpds   4                   ; max SMTP daemons
  507.               nobroadcast                      ; no Novell bcasts
  508.               returnto     postmaster          ; rejected mail
  509.               returnlines  0                   ; returned lines
  510.               timeout      600                 ; max exec time
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.                                          5
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.                                           XCHARON - Running XGATE With Charon
  532.        ----------------------------------------------------------------------
  533.  
  534.  
  535.  
  536.            The "agent"  field doesn't  function any differently under XCharon
  537.            then it  would normally,  but its important enough to mention.  It
  538.            controls which SMTP host Charon will attempt to relay all outbound
  539.            SMTP mail to.  The host name entered must match the name of a host
  540.            defined in  CONFIG.TEL, more specifically it must match one of the
  541.            "name" fields  (as opposed  to the "hostip" or "host" fields) of a
  542.            host entry in CONFIG.TEL.
  543.  
  544.            The  "smtpin"  field  normally  specifies  the  queue  name  where
  545.            incoming SMTP  messages are  queued.   XCharon will  automatically
  546.            override any  values,  correct  or  incorrect,  entered  for  this
  547.            variable  -  but  token  values  (like  in  the  "server"  section
  548.            mentioned previously)  must be entered or Charon won't even try to
  549.            use the queue.
  550.  
  551.            Note:  Charon also  allows for  a "smtpout"  field in  the  mailer
  552.            section, which  would normally  provide a  2nd queue option to use
  553.            for SMTP outbound messages.  DO NOT define an "smtpout" field when
  554.            using Charon  with XCharon.   It  will only  confuse  Charon  into
  555.            thinking it  has attached  to more  queues than  it  actually  has
  556.            because XCharon will intercept the queue attach request, map it to
  557.            the normal  smtpin queue,  which will then fail because that queue
  558.            has already been attached to.
  559.  
  560.            The rest  of the  mailer section  fields control various operating
  561.            options which don't have a direct or significant impact when using
  562.            Charon with  XCharon.   Refer to  Charon's documentation  for more
  563.            information if you want to tinker with any of their values.
  564.  
  565.  
  566.        aliases       aliases
  567.  
  568.            This field  starts Charon's  aliases section.   This  is the  only
  569.            other  section  containing  variables  which  have  an  impact  on
  570.            Charon's operation  under XCharon.   An  example  aliases  section
  571.            follows:
  572.  
  573.            aliases                             ; The aliases section
  574.               node    mhs.com                  ; map our SMTP host name
  575.                       enterprise               ;   to our Novell server
  576.  
  577.            The "node" alias tells Charon to accept mail addressed to Charon's
  578.            SMTP host  name by  associating it with a Novell file server name.
  579.            If you  don't specify the correct names for the node alias, Charon
  580.            will refuse to accept inbound SMTP mail addressed to your users.
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                                          6
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.                                           XCHARON - Running XGATE With Charon
  598.        ----------------------------------------------------------------------
  599.  
  600.  
  601.  
  602.            Note:  Charon's documentation would also have you provide a "user"
  603.            alias for the postmaster.  This is unnecessary however in our case
  604.            since XGATE  will  automatically  remap  mail  addressed  for  the
  605.            postmaster to the MHS administrator.
  606.  
  607.  
  608.                                    Running Charon                                   Running Charon
  609.  
  610.        When you  run Charon,  simply change directories to the one containing
  611.        Charon's files and then run XCHARON.COM.  XCharon will then log itself
  612.        in under  the proper object type, install its background handlers that
  613.        make Charon work properly, and then run CHARON.EXE.  When Charon tries
  614.        to log  in as  a print  server, XCharon  intercepts  the  request  and
  615.        arbitrarily returns  a successful  login result  (XCharon has  already
  616.        logged us  in).   When Charon  terminates, XCharon will regain control
  617.        and log  itself out of the file server.  XCharon also intercepts quite
  618.        a few  more things that change Charon's behavior significantly.  These
  619.        are described in the following section.
  620.  
  621.  
  622.        What XCHARON Does To Fool CHARON       What XCHARON Does To Fool CHARON
  623.  
  624.        This section provides a brief technical explanation of how XCharon and
  625.        Charon interoperate.   If  you're the type that doesn't like to say "I
  626.        don't know  how it  works", than this section should prove interesting
  627.        reading.   If technical  mumbo-jumbo doesn't  spin your  prop, you can
  628.        skip over it and leave these sordid details for the technocrats.
  629.  
  630.        Charon version 3.4 was designed with a lot of the same "frame-of-mind"
  631.        found in  most SMTP  mailers.  Which is, that whenever an inbound SMTP
  632.        message  delivery  is  attempted,  that  it  should  verify  that  the
  633.        recipient is a valid user.  In Charon's case, it does this by scanning
  634.        the binderies  of each Novell file server it is configured for.  If it
  635.        doesn't find  the user,  it rejects  the message.  If it does find the
  636.        user, it  attempts to  write the message in the user's SYS:MAIL\userid
  637.        subdirectory.
  638.  
  639.        This philosophy  is totally  opposite to that needed and expected in a
  640.        single or  multi-host MHS environment.  MHS will determine whether the
  641.        user is valid, after any appropriate user routing has been applied.
  642.  
  643.        So where  the philosophy  changes is that a single Charon installation
  644.        should be capable of servicing any number of MHS hosts.  All SMTP mail
  645.        received by  Charon should be considered destined for MHS, and must be
  646.        passed directly  to MHS  without question,  or verification.  The only
  647.        natural trait  in Charon  which is  acceptable, and  is left as is, is
  648.        that if a message is delivered to Charon and the recipient's host name
  649.        is not  the one  which Charon is configured to operate as, the message
  650.  
  651.  
  652.  
  653.  
  654.                                          7
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.                                           XCHARON - Running XGATE With Charon
  664.        ----------------------------------------------------------------------
  665.  
  666.  
  667.  
  668.        is rejected.   This  is because  the MHS  host name  is encoded in the
  669.        "local-part" of  the recipient's  user  name  from  the  SMTP  side  -
  670.        Charon's SMTP host name is the same for all inbound MHS messages.
  671.  
  672.        Another "flakey"  thing that  Charon does is try to use a Novell print
  673.        server as  its method  of logging  in, and then it expects to exchange
  674.        messages with  Pegasus mail  by depositing  inbound mail in the user's
  675.        SYS:MAIL\userid subdirectory.   And,  it also  looks for outbound SMTP
  676.        messages in  a Novell  print queue.   While this method does make some
  677.        things easy  because there's  a readily  available tool  to manage and
  678.        maintain print  servers and print queues (Novell's PCONSOLE), it has a
  679.        lot of  undesirable caveats  which most  Novell administrator's  would
  680.        probably find  unsettling.  For 1), you end up with print queues which
  681.        aren't print  queues.   Any type  of menuing  system that  presents  a
  682.        listing of  print queues  for the  user to  select from will also show
  683.        Charon's inbound  and outbound  work queues.   The  same goes  for the
  684.        print server  object that  Charon would  like you  to create.  Another
  685.        more serious  problem, is  that a  print server  normally has  no disk
  686.        privileges.   Novell never anticipated that something would try to log
  687.        in as a print server and also need read/write access to other areas of
  688.        the file system.  So there's no normal way to grant a print server any
  689.        trusteeships to  file server  directories.  Charon's answer to this is
  690.        to run  a utility  program that  comes with  Charon, under  supervisor
  691.        privileges, that  makes the print server object security equivalent to
  692.        a user  group.   Then, disk  privileges are granted to the user group.
  693.        The problem  with this is that BINDFIX thinks this is either an error,
  694.        or a  security violation,  and removes  the security  equivalence each
  695.        time its run.
  696.  
  697.        So how  do we  fix all  this?   And do  it smoothly?   The answer is a
  698.        driver which  you run  in place  of running  Charon, which  traps  the
  699.        Novell function  request dispatcher and then runs Charon itself.  When
  700.        Charon terminates,  the driver  immediately terminates also.  Whatever
  701.        command line  parameters given  are passed through directly to Charon.
  702.        Whatever exit  code Charon  returns is  the same exit code returned by
  703.        the driver.  While the driver is active (which as we just described is
  704.        only when  Charon is  active), it  translates all  of the  undesirable
  705.        "features" into  a seamless  method of  allowing  Charon  to  directly
  706.        interoperate and communicate with XGATE.
  707.  
  708.        XCHARON.COM is  the driver  we're talking  about.   You could actually
  709.        rename  it  to  CHARON.COM  and,  since  its  a  .COM  file,  it  will
  710.        automatically run  before CHARON.EXE  and you  wouldn't have to change
  711.        anything if you already have an automated method of starting Charon.
  712.  
  713.        When XCharon  is run, it logs in as a job server called XCHARON (which
  714.        is created  by the  XSETUP program).   It then checks to make sure the
  715.        rest of the queues are present which are built by XSETUP, and proceeds
  716.  
  717.  
  718.  
  719.  
  720.                                          8
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.                                           XCHARON - Running XGATE With Charon
  730.        ----------------------------------------------------------------------
  731.  
  732.  
  733.  
  734.        to run CHARON.EXE if everything's ok.  When Charon itself tries to log
  735.        in as  the print  server defined  in CHARON.DAT,  XCharon catches  the
  736.        login attempt  and immediately  returns a  successful  login  (because
  737.        XCharon is  already logged  in appropriately).   When  Charon tries to
  738.        reference any  of the  print queues  defined  in  CHARON.DAT,  XCharon
  739.        remaps the requests to the job queues which XSETUP created.
  740.  
  741.        As time  goes by  and Charon receives an inbound SMTP message, it will
  742.        try to  confirm the  user exists  by making  a bindery  call - XCharon
  743.        catches these  functions and  arbitrarily returns a success code.  But
  744.        it has  to do  a little  more than  that -  it  has  to  automatically
  745.        differentiate which  job queue  to deal  with between  when Charon  is
  746.        receiving an  inbound SMTP  message and  when Charon  is attempting to
  747.        service an  outbound SMTP  message.   When Charon  receives an inbound
  748.        SMTP message,  XCharon forces  the message  to  go  into  the  SMTP_IN
  749.        inbound queue.   Normally  Charon doesn't service or scan for anything
  750.        in the  SMTP_IN queue  - its  only allowed to touch it when it's being
  751.        fooled by  XCharon into posting inbound messages in there.  XGATE will
  752.        then scan  this queue  for incoming  messages and  do the remainder of
  753.        converting it  to MHS.   When  XGATE has  an outbound SMTP message, it
  754.        posts it  in the  SMTP_OUT job queue, which is the queue XCharon fools
  755.        Charon into using when it scans for outbound SMTP messages
  756.  
  757.        This may  all sound  a little  complicated and prone to error - but it
  758.        really isn't.   The author is well versed with the Novell API and with
  759.        systems-level  coding   -  the   whole  thing   blends  together  very
  760.        seamlessly, reliably, and automatically.
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.                                          9
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.